Advance Lane Detection

The goals / steps of this project are the following:

  • Compute the camera calibration matrix and distortion coefficients given a set of chessboard images.
  • Apply a distortion correction to raw images.
  • Use color transforms, gradients, etc., to create a thresholded binary image.
  • Apply a perspective transform to rectify binary image ("birds-eye view").
  • Detect lane pixels and fit to find the lane boundary.
  • Determine the curvature of the lane and vehicle position with respect to center.
  • Warp the detected lane boundaries back onto the original image.
  • Output visual display of the lane boundaries and numerical estimation of lane curvature and vehicle position.
In [1]:
import cv2
import glob
import math
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import os.path
%matplotlib inline

Camera Calibration

In [2]:
# load calibration
import calibration as cc
mtx, dist = cc.getCalibration()
Calibration settings loaded

Camera Calibration Vizualization

In [3]:
fig = plt.figure()
fig.set_size_inches(50,50)
path = "./output_images/corners_found_*.jpg"
images = glob.glob(path)
total_image_count = len(images)
image_count = 1
for i in images:
    img = cv2.imread(i)
    ax = fig.add_subplot(math.ceil(total_image_count / 3), 3, image_count)
    ax.imshow(img)
    ax.axis('off')
    ax.set_title('DrawChessboardCorners', fontsize=30)
    image_count += 1
In [4]:
fig = plt.figure()
fig.set_size_inches(50,50)
path = "./test_images/*.jpg"
images = glob.glob(path)
total_image_count = len(images)
image_count = 1
for i in images:
    img = cv2.imread(i)
    dst = cv2.undistort(img, mtx, dist, None, mtx)
    cv2.imwrite('./output_images/undistorted_' + os.path.split(i)[-1], dst)

    ax = fig.add_subplot(total_image_count, 2, image_count)
    ax.imshow(img)
    ax.axis('off')
    ax.set_title('Original Image ' + os.path.split(i)[-1], fontsize=30)
    image_count += 1
    ax = fig.add_subplot(math.ceil(total_image_count), 2, image_count)
    ax.imshow(dst)
    ax.axis('off')
    ax.set_title('Undistorted Image ' + os.path.split(i)[-1], fontsize=30)
    image_count += 1
    

Thresholding

In [5]:
import glob
import os.path
import thresholding as th

path = "./output_images/undistorted_*.jpg"
images = glob.glob(path)

fig = plt.figure()
fig.set_size_inches(50,50)

total_image_count = len(images)
image_count = 1

for i in images:
    image = mpimg.imread(i) 

    combined_binary, s_binary, sobel_binary = th.combined_threshold(image)
    cv2.imwrite('./output_images/threshold_' + os.path.split(i)[-1], combined_binary)

    # Plotting thresholded images
    ax = fig.add_subplot(total_image_count, 4, image_count)
    ax.imshow(image)
    ax.axis('off')
    ax.set_title('Original Image ' + os.path.split(i)[-1], fontsize=30)
    image_count += 1
    ax = fig.add_subplot(total_image_count, 4, image_count)
    ax.imshow(combined_binary, cmap='gray')
    ax.axis('off')
    ax.set_title('Combined S channel and gradient thresholds ', fontsize=30)
    image_count += 1
    ax = fig.add_subplot(total_image_count, 4, image_count)
    ax.imshow(s_binary, cmap='gray')
    ax.axis('off')
    ax.set_title('s_binary ', fontsize=30)
    image_count += 1
    ax = fig.add_subplot(total_image_count, 4, image_count)
    ax.imshow(sobel_binary, cmap='gray')
    ax.axis('off')
    ax.set_title('sobel_binary ', fontsize=30)
    image_count += 1

  

Perspective transform

In [3]:
import glob
import os.path
from cv2 import IMREAD_GRAYSCALE
path = "./output_images/threshold_undistorted_test2.jpg"
images = glob.glob(path)

image = mpimg.imread(images[0]) 
img_size = (image.shape[1], image.shape[0])

fig = plt.figure()
fig.set_size_inches(50,50)

image_count = 1
offset = 200

src = np.float32([
    [  588,   446 ],
    [  691,   446 ],
    [ 1126,   673 ],
    [  153 ,   673 ]])
dst = np.float32([[offset, 0], [img_size[0] - offset, 0], [img_size[0] - offset, img_size[1]], [offset, img_size[1]]])

M = cv2.getPerspectiveTransform(src, dst)
Minv = cv2.getPerspectiveTransform(dst, src)

binary_warped = cv2.warpPerspective(image, M, img_size, flags=cv2.INTER_LINEAR)

# Plotting thresholded images
ax = fig.add_subplot(1, 2, image_count)
ax.imshow(image, cmap='gray')
ax.axis('off')
ax.set_title('Original Image ' + os.path.split(images[0])[-1], fontsize=30)
image_count += 1
ax = fig.add_subplot(1, 2, image_count)
ax.imshow(binary_warped, cmap='gray')
ax.axis('off')
ax.set_title('Binary Warped ' + os.path.split(images[0])[-1], fontsize=30)
image_count += 1

cv2.imwrite('./output_images/Warped_' + os.path.split(images[0])[-1], binary_warped)
Out[3]:
True

Lane Detections

In [7]:
import lanes
import matplotlib.pyplot as plt

## Visualization    
out_img, left_fit, right_fit = lanes.detect_lanes_full(binary_warped)
# ploty is just the coordinates for y axis: 0 - 719
ploty = np.linspace(0, binary_warped.shape[0]-1, binary_warped.shape[0] )

left_fitx = left_fit[0]*ploty**2 + left_fit[1]*ploty + left_fit[2]
right_fitx = right_fit[0]*ploty**2 + right_fit[1]*ploty + right_fit[2]
plt.imshow(out_img)
plt.plot(left_fitx, ploty, color='yellow')
plt.plot(right_fitx, ploty, color='yellow')
plt.xlim(0, 1280)
plt.ylim(720, 0)
plt.title('Lane Detected')
Out[7]:
<matplotlib.text.Text at 0x11d07cba8>

Radius of Curvature

In [8]:
import lanes

# left_curverad, right_curverad = get_radius(left_fitx, right_fitx, ploty)
left_curverad, right_curverad = lanes.get_radius(left_fitx, right_fitx, ploty)

# Now our radius of curvature is in meters
# print("left lane radius:" + left_curverad + 'm ' + "right lane radius:" + right_curverad + 'm ' + "Lane length: " + (right_curverad - left_curverad))
print(left_curverad, 'm', right_curverad, 'm')
print("left lane radius:" , left_curverad , 'm ' , "right lane radius:" , right_curverad , 'm ' , "Lane length: " , (right_curverad - left_curverad))
298.665961565 m 1353.91767012 m
left lane radius: 298.665961565 m  right lane radius: 1353.91767012 m  Lane length:  1055.25170855

Plot the detected lane boundaries back onto the original image.

In [9]:
import lanes

# Create an image to draw the lines on
path = "./output_images/undistorted_test2.jpg"
images = glob.glob(path)

undistorted = mpimg.imread(images[0]) 
img_size = (undistorted.shape[1], undistorted.shape[0])

result = lanes.plot_lanes(undistorted, binary_warped, Minv, img_size, left_fitx, right_fitx, ploty)
plt.imshow(result)
cv2.imwrite('./output_images/Final_test2.jpg', result)
Out[9]:
True

Generate Video

In [4]:
# Import everything needed to edit/save/watch video clips
from IPython.display import HTML
import lanes
from moviepy.editor import VideoFileClip
import pipeline as p
import thresholding as th

def process_image(img):
    undistorted = cv2.undistort(img, mtx, dist, None, mtx)
    ploty = np.linspace(0, undistorted.shape[0]-1, undistorted.shape[0] )
    
    combined_binary, s_binary, sobel_binary = th.combined_threshold(undistorted)
    img_size = (undistorted.shape[1], undistorted.shape[0])

    binary_warped = cv2.warpPerspective(combined_binary, M, img_size, flags=cv2.INTER_LINEAR)

    left_fit = []
    right_fit = []
    valid = True
    incremental = False
    
    if line.num_invalid < line.MAX_INVALID:
        incremental = True
        _, left_fit, right_fit, valid = lanes.detect_lanes_incremental(binary_warped, line.left_fit, line.right_fit)
    else:
        line.reset()
        _, left_fit, right_fit = lanes.detect_lanes_full(binary_warped)
    
    left_fitx = left_fit[0]*ploty**2 + left_fit[1]*ploty + left_fit[2]
    right_fitx = right_fit[0]*ploty**2 + right_fit[1]*ploty + right_fit[2]

    left_curverad, right_curverad = lanes.get_radius(left_fitx, right_fitx, ploty)
    lane_length = right_curverad - left_curverad
#     if valid:
#         if ((right_curverad/left_curverad) > 5) or ((right_curverad/left_curverad) < 0.2):
#             print("Lane curves too off: ", right_curverad/left_curverad)
#             valid = False
    
    mid_point = img_size[0]/2
    valid = p.are_lines_valid(mid_point, left_fitx, right_fitx)
    
    if ((not valid) and incremental):
        _, left_fit, right_fit = lanes.detect_lanes_full(binary_warped)
        incremental = False
        valid = True
        left_fitx = left_fit[0]*ploty**2 + left_fit[1]*ploty + left_fit[2]
        right_fitx = right_fit[0]*ploty**2 + right_fit[1]*ploty + right_fit[2]

        left_curverad, right_curverad = lanes.get_radius(left_fitx, right_fitx, ploty)
        lane_length = right_curverad - left_curverad
#         if valid:
#             if ((right_curverad/left_curverad) > 5) or ((right_curverad/left_curverad) < 0.2):
#                 print("Lane curves too off: ", right_curverad/left_curverad)
#                 valid = False

        mid_point = img_size[0]/2
        valid = p.are_lines_valid(mid_point, left_fitx, right_fitx)
        if valid:
            print("Success !!!!!!!!!!")

    
#     valid = are_lines_valid(lane_length)
    line.detected = valid
    if valid:
        line.num_invalid = 0
        line.update_fit(left_fit, right_fit)
        line.update_points(left_fitx, right_fitx)
    else:
        line.num_invalid += 1
        l = len(line.recent_xfitted_left) 
        if l > 0:
            left_fit = line.left_fit
            right_fit = line.right_fit
            left_fitx, right_fitx = line.get_points()
            line.update_fit(left_fit, right_fit)
            line.update_points(left_fitx, right_fitx)

    if not (valid and incremental and (line.num_invalid == 0)):
        print("Valid: ", valid, " Incremental: ", incremental, line.num_invalid, len(line.recent_xfitted_left), len(line.recent_xfitted_right))

    l = len(line.recent_xfitted_left) 
    if l > 0:
        left_fitx, right_fitx = line.get_points_avg()
#         left_fitx, right_fitx = line.get_points()
        result = lanes.plot_lanes(undistorted, binary_warped, Minv, img_size, left_fitx, right_fitx, ploty)
    else:
        result = undistorted

    return result
        
In [5]:
line = p.Line()
output = 'project_video_marked.mp4'
clip1 = VideoFileClip("project_video.mp4")
# clip = VideoFileClip("project_video.mp4")
# clip1 = clip.subclip(35,45)
output_clip = clip1.fl_image(process_image) #NOTE: this function expects color images!!
%time output_clip.write_videofile(output, audio=False)
Valid:  True  Incremental:  False 0 1 1
[MoviePy] >>>> Building video project_video_marked.mp4
[MoviePy] Writing video project_video_marked.mp4
 77%|███████▋  | 976/1261 [03:57<01:13,  3.89it/s]
base lane too far away  1.52160869417 2.5002693411
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 79%|███████▊  | 992/1261 [04:01<01:13,  3.68it/s]
base lane too close to center  1.63580043672 0.891947901808
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 79%|███████▉  | 1002/1261 [04:04<01:16,  3.39it/s]
base lane too far away  1.79308305036 2.62073072637
base lane too close to center  1.84085968606 0.496568636249
Valid:  False  Incremental:  False 1 3 3
 80%|███████▉  | 1003/1261 [04:05<01:19,  3.23it/s]
base lane too far away  1.77533718462 2.51695609202
base lane too close to center  1.85899107753 0.000731756963323
Valid:  False  Incremental:  False 2 3 3
 82%|████████▏ | 1028/1261 [04:11<01:02,  3.74it/s]
base lane too far away  1.81419196583 2.54944879775
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 82%|████████▏ | 1030/1261 [04:12<01:03,  3.65it/s]
base lane too far away  1.92436002828 2.53849157794
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
100%|█████████▉| 1255/1261 [05:06<00:01,  3.96it/s]
base lane too far away  1.31125135325 2.51092882225
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
100%|█████████▉| 1260/1261 [05:08<00:00,  4.12it/s]
[MoviePy] Done.
[MoviePy] >>>> Video ready: project_video_marked.mp4 

CPU times: user 5min 32s, sys: 1min 3s, total: 6min 35s
Wall time: 5min 8s
In [ ]:
output = 'challenge_video_marked.mp4'
clip1 = VideoFileClip("challenge_video.mp4")
output_clip = clip1.fl_image(process_image) #NOTE: this function expects color images!!
%time output_clip.write_videofile(output, audio=False)
[MoviePy] >>>> Building video challenge_video_marked.mp4
[MoviePy] Writing video challenge_video_marked.mp4
  7%|▋         | 36/485 [00:08<01:53,  3.95it/s]
base lane too far away  1.46477458896 2.50428162039
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 11%|█         | 52/485 [00:12<01:46,  4.07it/s]
base lane too far away  1.66316572955 2.52287928287
base lane too far away  0.448207792695 2.51174389097
base lane too close to center  0.448207792695 2.51174389097
Valid:  False  Incremental:  False 1 3 3
 11%|█         | 54/485 [00:13<01:45,  4.08it/s]
base lane too far away  1.68565820727 2.527186131
base lane too far away  0.521240784595 2.5420075693
base lane too close to center  0.521240784595 2.5420075693
Valid:  False  Incremental:  False 1 3 3
 11%|█▏        | 55/485 [00:13<01:46,  4.03it/s]
base lane too far away  1.76835272144 2.50075122973
base lane too close to center  0.018368199164 0.0417190821576
Valid:  False  Incremental:  False 2 3 3
 12%|█▏        | 56/485 [00:13<01:47,  3.99it/s]
base lane too far away  1.81142607458 2.57323416565
base lane too close to center  0.243719559622 0.0684122678337
Valid:  False  Incremental:  False 3 3 3
 12%|█▏        | 57/485 [00:13<01:47,  3.99it/s]
base lane too far away  1.83023708557 2.54992645979
base lane too far away  0.326370448799 2.57115327502
base lane too close to center  0.326370448799 2.57115327502
Valid:  False  Incremental:  False 4 3 3
 12%|█▏        | 58/485 [00:14<01:47,  3.99it/s]
base lane too far away  1.86150481145 2.62602949347
base lane too close to center  0.365357982845 0.209195020715
Valid:  False  Incremental:  False 5 3 3
 12%|█▏        | 59/485 [00:14<01:43,  4.12it/s]
base lane too close to center  0.506559018872 0.399516217426
Valid:  False  Incremental:  False 6 0 0
 12%|█▏        | 60/485 [00:14<01:40,  4.23it/s]
base lane too close to center  0.148205712109 0.232461309799
Valid:  False  Incremental:  False 6 0 0
 13%|█▎        | 61/485 [00:14<01:40,  4.23it/s]
base lane too close to center  0.354709429615 0.410468414601
Valid:  False  Incremental:  False 6 0 0
 13%|█▎        | 62/485 [00:15<01:37,  4.32it/s]
base lane too far away  0.318575965668 2.69679925726
base lane too close to center  0.318575965668 2.69679925726
Valid:  False  Incremental:  False 6 0 0
 13%|█▎        | 63/485 [00:15<01:36,  4.37it/s]
base lane too far away  0.34948593914 2.61269360374
base lane too close to center  0.34948593914 2.61269360374
Valid:  False  Incremental:  False 6 0 0
 13%|█▎        | 64/485 [00:15<01:36,  4.38it/s]
base lane too far away  0.357460012396 2.62887838429
base lane too close to center  0.357460012396 2.62887838429
Valid:  False  Incremental:  False 6 0 0
 13%|█▎        | 65/485 [00:15<01:34,  4.42it/s]
base lane too far away  0.528164365355 2.73398034162
base lane too close to center  0.528164365355 2.73398034162
Valid:  False  Incremental:  False 6 0 0
 14%|█▎        | 66/485 [00:15<01:33,  4.47it/s]
base lane too far away  0.547152955447 2.73451220724
base lane too close to center  0.547152955447 2.73451220724
Valid:  False  Incremental:  False 6 0 0
 14%|█▍        | 67/485 [00:16<01:33,  4.46it/s]
base lane too far away  0.372105714098 2.78741922309
base lane too close to center  0.372105714098 2.78741922309
Valid:  False  Incremental:  False 6 0 0
 14%|█▍        | 68/485 [00:16<01:32,  4.50it/s]
base lane too far away  1.09868561635 2.83006230851
Valid:  False  Incremental:  False 6 0 0
 14%|█▍        | 69/485 [00:16<01:38,  4.23it/s]
base lane too far away  0.667715825215 2.68543915524
base lane too close to center  0.667715825215 2.68543915524
Valid:  False  Incremental:  False 6 0 0
 14%|█▍        | 70/485 [00:16<01:40,  4.13it/s]
base lane too far away  0.306117213856 2.76607614021
base lane too close to center  0.306117213856 2.76607614021
Valid:  False  Incremental:  False 6 0 0
 15%|█▍        | 71/485 [00:17<01:40,  4.10it/s]
base lane too far away  0.956349980514 2.83605756552
base lane too close to center  0.956349980514 2.83605756552
Valid:  False  Incremental:  False 6 0 0
 15%|█▍        | 72/485 [00:17<01:38,  4.19it/s]
base lane too far away  0.956104267918 2.90691960556
base lane too close to center  0.956104267918 2.90691960556
Valid:  False  Incremental:  False 6 0 0
 15%|█▌        | 73/485 [00:17<01:36,  4.28it/s]
base lane too far away  1.12970748465 2.90103141917
Valid:  False  Incremental:  False 6 0 0
 15%|█▌        | 74/485 [00:17<01:35,  4.30it/s]
base lane too far away  0.645352550069 2.895662153
base lane too close to center  0.645352550069 2.895662153
Valid:  False  Incremental:  False 6 0 0
 15%|█▌        | 75/485 [00:18<01:33,  4.36it/s]
base lane too close to center  0.49252685065 0.0827212338109
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 76/485 [00:18<01:31,  4.46it/s]
base lane too close to center  1.28823634404 0.440357866315
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 77/485 [00:18<01:31,  4.48it/s]
base lane too close to center  1.07661571826 0.00483084029727
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 78/485 [00:18<01:30,  4.52it/s]
base lane too close to center  0.943580500974 0.00460634754143
Valid:  False  Incremental:  False 6 0 0
 16%|█▋        | 79/485 [00:18<01:30,  4.48it/s]
base lane too close to center  0.20277922858 0.56252668369
Valid:  False  Incremental:  False 6 0 0
 16%|█▋        | 80/485 [00:19<01:29,  4.51it/s]
base lane too far away  1.24993124568 2.97141634936
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 81/485 [00:19<01:29,  4.53it/s]
base lane too far away  1.28358855114 3.0119232973
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 82/485 [00:19<01:28,  4.53it/s]
base lane too close to center  1.15303371318 0.647841386573
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 83/485 [00:19<01:29,  4.49it/s]
base lane too close to center  0.381914852972 0.616261417921
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 84/485 [00:20<01:28,  4.53it/s]
base lane too close to center  1.00494903692 0.567707710874
Valid:  False  Incremental:  False 6 0 0
 18%|█▊        | 85/485 [00:20<01:28,  4.54it/s]
base lane too far away  0.368870682462 3.0036803156
base lane too close to center  0.368870682462 3.0036803156
Valid:  False  Incremental:  False 6 0 0
 18%|█▊        | 86/485 [00:20<01:28,  4.51it/s]
base lane too far away  1.21558142896 2.98727008714
Valid:  False  Incremental:  False 6 0 0
 18%|█▊        | 87/485 [00:20<01:27,  4.55it/s]
base lane too close to center  0.00166316451704 0.590107721379
Valid:  False  Incremental:  False 6 0 0
 18%|█▊        | 88/485 [00:20<01:26,  4.59it/s]
base lane too close to center  0.50714148506 0.663595656736
Valid:  False  Incremental:  False 6 0 0
 18%|█▊        | 89/485 [00:21<01:26,  4.60it/s]
base lane too close to center  0.267895522334 0.714983726125
Valid:  False  Incremental:  False 6 0 0
 19%|█▊        | 90/485 [00:21<01:25,  4.62it/s]
base lane too close to center  0.124875638053 0.746291901343
Valid:  False  Incremental:  False 6 0 0
 19%|█▉        | 91/485 [00:21<01:25,  4.62it/s]
base lane too close to center  0.10612158249 0.388738781279
Valid:  False  Incremental:  False 6 0 0
 19%|█▉        | 92/485 [00:21<01:25,  4.62it/s]
base lane too close to center  1.17861503104 0.466068364109
Valid:  False  Incremental:  False 6 0 0
 19%|█▉        | 93/485 [00:21<01:24,  4.62it/s]
base lane too close to center  0.00812762534402 0.364233786395
Valid:  False  Incremental:  False 6 0 0
 19%|█▉        | 94/485 [00:22<01:24,  4.60it/s]
base lane too close to center  0.278873833825 0.416804087744
Valid:  False  Incremental:  False 6 0 0
 20%|█▉        | 95/485 [00:22<01:25,  4.55it/s]
base lane too close to center  0.37720109539 0.37720109539
Valid:  False  Incremental:  False 6 0 0
 20%|█▉        | 96/485 [00:22<01:24,  4.58it/s]
base lane too close to center  0.813443307045 0.56836661785
Valid:  False  Incremental:  False 6 0 0
 20%|██        | 97/485 [00:22<01:24,  4.58it/s]
base lane too close to center  1.11038998602 0.389926908272
Valid:  False  Incremental:  False 6 0 0
 20%|██        | 98/485 [00:23<01:24,  4.60it/s]
base lane too close to center  1.05227727066 0.455196089802
Valid:  False  Incremental:  False 6 0 0
 20%|██        | 99/485 [00:23<01:23,  4.61it/s]
base lane too close to center  0.34445543182 0.467962545394
Valid:  False  Incremental:  False 6 0 0
 21%|██        | 100/485 [00:23<01:23,  4.61it/s]
base lane too close to center  0.165863775754 0.190221714354
Valid:  False  Incremental:  False 6 0 0
 21%|██        | 101/485 [00:23<01:23,  4.59it/s]
base lane too close to center  1.22073569662 0.286851306466
Valid:  False  Incremental:  False 6 0 0
 21%|██        | 102/485 [00:23<01:22,  4.63it/s]
base lane too close to center  1.22417549293 0.0355267696468
Valid:  False  Incremental:  False 6 0 0
 21%|██        | 103/485 [00:24<01:22,  4.61it/s]
base lane too close to center  1.22455203079 0.485910289774
Valid:  False  Incremental:  False 6 0 0
 21%|██▏       | 104/485 [00:24<01:23,  4.58it/s]
Valid:  True  Incremental:  False 0 1 1
 27%|██▋       | 132/485 [00:30<01:22,  4.30it/s]
base lane too close to center  1.71099086394 0.957485170054
base lane too close to center  0.111787575213 0.0718123792244
Valid:  False  Incremental:  False 1 3 3
 27%|██▋       | 133/485 [00:30<01:23,  4.23it/s]
base lane too close to center  1.73424539255 0.388750978843
base lane too far away  0.342797041393 2.88105362158
base lane too close to center  0.342797041393 2.88105362158
Valid:  False  Incremental:  False 2 3 3
 28%|██▊       | 134/485 [00:31<01:25,  4.12it/s]
base lane too close to center  1.7207123425 0.243128409918
base lane too close to center  0.257459380079 2.36049690576
Valid:  False  Incremental:  False 3 3 3
 28%|██▊       | 135/485 [00:31<01:26,  4.07it/s]
base lane too close to center  1.73976792529 0.192192129944
base lane too close to center  0.165833730769 2.04214111316
Valid:  False  Incremental:  False 4 3 3
 28%|██▊       | 136/485 [00:31<01:26,  4.02it/s]
base lane too close to center  1.56086014736 0.0479788042833
base lane too close to center  0.124469168049 1.9464867275
Valid:  False  Incremental:  False 5 3 3
 28%|██▊       | 137/485 [00:31<01:23,  4.14it/s]
base lane too close to center  0.20559942074 0.147626896728
Valid:  False  Incremental:  False 6 0 0
 28%|██▊       | 138/485 [00:32<01:22,  4.22it/s]
base lane too close to center  0.244728779982 1.17091260248
Valid:  False  Incremental:  False 6 0 0
 29%|██▊       | 139/485 [00:32<01:21,  4.27it/s]
base lane too close to center  0.533119417192 1.13126606086
Valid:  False  Incremental:  False 6 0 0
 29%|██▉       | 140/485 [00:32<01:20,  4.28it/s]
base lane too close to center  0.529432127517 0.634927186505
Valid:  False  Incremental:  False 6 0 0
 29%|██▉       | 141/485 [00:32<01:21,  4.23it/s]
Valid:  True  Incremental:  False 0 1 1
 29%|██▉       | 142/485 [00:33<01:23,  4.11it/s]
base lane too close to center  1.35764942168 0.997199754463
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 2 2
 29%|██▉       | 143/485 [00:33<01:24,  4.03it/s]
base lane too close to center  1.24476658311 0.710574557581
base lane too close to center  0.347569266196 1.00769741564
Valid:  False  Incremental:  False 1 3 3
 30%|██▉       | 144/485 [00:33<01:25,  3.98it/s]
base lane too close to center  1.26427648167 0.621720516775
base lane too close to center  0.813707929133 0.959318303371
Valid:  False  Incremental:  False 2 3 3
 30%|██▉       | 145/485 [00:33<01:26,  3.92it/s]
base lane too close to center  1.29913992124 0.603905117883
base lane too close to center  0.684552995132 0.893958915841
Valid:  False  Incremental:  False 3 3 3
 30%|███       | 146/485 [00:34<01:26,  3.90it/s]
base lane too close to center  1.31825694481 0.480536048906
base lane too close to center  1.18197084179 0.888678672811
Valid:  False  Incremental:  False 4 3 3
 30%|███       | 147/485 [00:34<01:27,  3.85it/s]
base lane too close to center  1.35138959911 0.329374050921
base lane too close to center  1.28566166923 0.744946464017
Valid:  False  Incremental:  False 5 3 3
 31%|███       | 148/485 [00:34<01:24,  3.97it/s]
Valid:  True  Incremental:  False 0 1 1
 31%|███       | 149/485 [00:34<01:25,  3.94it/s]
base lane too close to center  1.44829583071 0.892884807757
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 2 2
 31%|███       | 150/485 [00:35<01:25,  3.91it/s]
base lane too close to center  1.36621083517 0.90636624978
base lane too close to center  1.12314141147 0.831022241834
Valid:  False  Incremental:  False 1 3 3
 31%|███       | 151/485 [00:35<01:26,  3.88it/s]
base lane too close to center  1.39187877484 0.0943787437084
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 33%|███▎      | 159/485 [00:37<01:18,  4.13it/s]
base lane too close to center  1.49090800518 0.98192974136
base lane too close to center  0.998603204559 0.63600688588
Valid:  False  Incremental:  False 1 3 3
 33%|███▎      | 160/485 [00:37<01:20,  4.02it/s]
base lane too close to center  1.52981127488 0.88007010829
base lane too close to center  0.961400811117 1.75177081503
Valid:  False  Incremental:  False 2 3 3
 33%|███▎      | 161/485 [00:37<01:21,  3.97it/s]
base lane too close to center  1.50787182828 0.737928598238
base lane too close to center  1.00447273151 0.634584913274
Valid:  False  Incremental:  False 3 3 3
 33%|███▎      | 162/485 [00:38<01:21,  3.95it/s]
base lane too close to center  1.50391050188 0.196072341256
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 36%|███▌      | 173/485 [00:40<01:14,  4.18it/s]
base lane too far away  1.44361218177 3.63715236288
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 39%|███▊      | 187/485 [00:44<01:13,  4.08it/s]
base lane too far away  1.61775131983 3.03592848525
base lane too close to center  1.2959559606 0.852912051403
Valid:  False  Incremental:  False 1 3 3
 39%|███▉      | 188/485 [00:44<01:14,  4.00it/s]
base lane too far away  1.61466509392 2.96941615552
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 43%|████▎     | 209/485 [00:49<01:06,  4.18it/s]
base lane too close to center  1.59354973417 0.721941401407
base lane too close to center  1.66822408776 0.203644620696
Valid:  False  Incremental:  False 1 3 3
 44%|████▎     | 211/485 [00:49<01:06,  4.10it/s]
base lane too close to center  1.5096171488 0.731860537371
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 50%|█████     | 243/485 [00:57<00:58,  4.12it/s]
base lane too close to center  1.85904879478 0.114401567317
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 73%|███████▎  | 354/485 [01:23<00:34,  3.85it/s]
base lane too far away  1.88431930805 2.63202520085
base lane too close to center  0.961425166275 0.125220994468
Valid:  False  Incremental:  False 1 3 3
 73%|███████▎  | 355/485 [01:23<00:34,  3.74it/s]
base lane too far away  1.88861818447 2.60804761058
base lane too close to center  1.10044427631 0.117285885052
Valid:  False  Incremental:  False 2 3 3
 85%|████████▌ | 413/485 [01:37<00:18,  3.94it/s]
base lane too far away  1.7223156837 2.53103942833
base lane too close to center  1.26756285045 0.151027650285
Valid:  False  Incremental:  False 1 3 3
 86%|████████▌ | 415/485 [01:38<00:18,  3.86it/s]
base lane too far away  1.61545832043 2.55262377256
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 86%|████████▌ | 416/485 [01:38<00:18,  3.73it/s]
base lane too close to center  0.988662339021 1.37040907114
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 86%|████████▌ | 417/485 [01:38<00:18,  3.67it/s]
base lane too close to center  0.971439343685 1.36309716335
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 87%|████████▋ | 423/485 [01:40<00:15,  3.93it/s]
base lane too close to center  0.988277641064 1.46969546065
base lane too close to center  0.990954062998 1.42955405234
Valid:  False  Incremental:  False 1 3 3
 87%|████████▋ | 424/485 [01:40<00:15,  3.85it/s]
base lane too close to center  0.997351786449 1.56270565943
base lane too close to center  0.966854888969 1.58115107898
Valid:  False  Incremental:  False 2 3 3
 88%|████████▊ | 425/485 [01:40<00:15,  3.84it/s]
base lane too close to center  0.998933637226 1.53857752895
base lane too close to center  0.792166660476 1.49875954315
Valid:  False  Incremental:  False 3 3 3
 89%|████████▊ | 430/485 [01:42<00:13,  3.97it/s]
base lane too close to center  0.940942901057 1.54905048098
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 89%|████████▉ | 434/485 [01:43<00:12,  4.05it/s]
base lane too far away  2.53294294373 1.45626283669
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
100%|██████████| 485/485 [01:55<00:00,  4.16it/s]
[MoviePy] Done.
[MoviePy] >>>> Video ready: challenge_video_marked.mp4 

CPU times: user 2min 3s, sys: 23.6 s, total: 2min 27s
Wall time: 1min 55s
In [ ]:
output = 'harder_challenge_video_marked.mp4'
clip1 = VideoFileClip("harder_challenge_video.mp4")
output_clip = clip1.fl_image(process_image) #NOTE: this function expects color images!!
%time output_clip.write_videofile(output, audio=False)
[MoviePy] >>>> Building video harder_challenge_video_marked.mp4
[MoviePy] Writing video harder_challenge_video_marked.mp4
  1%|          | 12/1200 [00:03<05:48,  3.41it/s]
base lane too far away  2.39344685706 2.5791946711
base lane too far away  1.70753374629 2.8893048812
Valid:  False  Incremental:  False 1 3 3
  1%|          | 13/1200 [00:03<06:02,  3.27it/s]
base lane too far away  2.38473126124 2.60271901739
base lane too far away  1.70485376423 2.89375831149
Valid:  False  Incremental:  False 2 3 3
  1%|          | 14/1200 [00:03<06:07,  3.23it/s]
base lane too far away  2.38350858778 2.59712761028
base lane too far away  1.69956193114 2.91793835563
Valid:  False  Incremental:  False 3 3 3
  1%|▏         | 15/1200 [00:04<06:15,  3.16it/s]
base lane too far away  2.39129127211 2.56970050022
base lane too far away  1.74479923209 2.89875620967
Valid:  False  Incremental:  False 4 3 3
  1%|▏         | 16/1200 [00:04<06:23,  3.09it/s]
base lane too far away  2.39204739087 2.53535749535
base lane too far away  1.68790786923 2.88425447789
Valid:  False  Incremental:  False 5 3 3
  1%|▏         | 17/1200 [00:04<06:05,  3.23it/s]
base lane too far away  1.64403464797 2.86842686035
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 18/1200 [00:05<05:53,  3.34it/s]
base lane too far away  1.63864563986 2.84868644759
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 19/1200 [00:05<05:49,  3.38it/s]
base lane too far away  1.6602934597 2.91157312524
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 20/1200 [00:05<05:40,  3.46it/s]
base lane too far away  1.67003444188 2.89158890565
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 21/1200 [00:06<05:33,  3.54it/s]
base lane too far away  1.68818849549 2.93965962865
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 22/1200 [00:06<05:26,  3.60it/s]
base lane too far away  1.70736776538 2.97771988662
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 23/1200 [00:06<05:28,  3.58it/s]
base lane too far away  1.72876196823 2.89173811747
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 24/1200 [00:06<05:27,  3.59it/s]
base lane too far away  1.87776440421 2.90876856463
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 25/1200 [00:07<05:22,  3.64it/s]
base lane too far away  1.9174500964 2.97515888292
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 26/1200 [00:07<05:23,  3.63it/s]
base lane too far away  1.89485959766 2.98569786946
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 27/1200 [00:07<05:18,  3.69it/s]
base lane too far away  1.88847286204 3.02855383167
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 28/1200 [00:07<05:15,  3.71it/s]
base lane too far away  1.90019622192 3.08218520117
Valid:  False  Incremental:  False 6 0 0
  2%|▏         | 29/1200 [00:08<05:13,  3.73it/s]
base lane too far away  1.94568796432 3.14724030677
Valid:  False  Incremental:  False 6 0 0
  2%|▎         | 30/1200 [00:08<05:12,  3.74it/s]
base lane too far away  1.96482266304 3.03645528583
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 31/1200 [00:08<05:11,  3.76it/s]
base lane too far away  1.90253142246 3.10180027052
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 32/1200 [00:08<05:08,  3.79it/s]
base lane too far away  1.93170479643 3.12997785062
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 33/1200 [00:09<05:08,  3.78it/s]
base lane too far away  1.97776171026 3.10122062311
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 34/1200 [00:09<05:08,  3.78it/s]
base lane too far away  1.94187417986 3.12873727838
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 35/1200 [00:09<05:07,  3.79it/s]
base lane too far away  1.93515177888 3.12356890592
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 36/1200 [00:10<05:06,  3.79it/s]
base lane too far away  1.88470593787 3.08851322936
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 37/1200 [00:10<05:11,  3.73it/s]
base lane too far away  1.89874426219 3.09415118734
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 38/1200 [00:10<05:11,  3.72it/s]
base lane too far away  1.86152291646 3.08952268894
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 39/1200 [00:10<05:13,  3.71it/s]
base lane too far away  1.86935320443 3.11829997069
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 40/1200 [00:11<05:14,  3.69it/s]
base lane too far away  1.86293525958 3.11731181693
Valid:  False  Incremental:  False 6 0 0
  3%|▎         | 41/1200 [00:11<05:14,  3.69it/s]
base lane too far away  1.8688433341 3.12715878081
Valid:  False  Incremental:  False 6 0 0
  4%|▎         | 42/1200 [00:11<05:14,  3.69it/s]
base lane too far away  1.86088177679 3.12205733752
Valid:  False  Incremental:  False 6 0 0
  4%|▎         | 43/1200 [00:11<05:10,  3.72it/s]
base lane too far away  1.84482887964 3.13520418116
Valid:  False  Incremental:  False 6 0 0
  4%|▎         | 44/1200 [00:12<05:10,  3.72it/s]
base lane too far away  1.80465430848 3.12573643574
Valid:  False  Incremental:  False 6 0 0
  4%|▍         | 45/1200 [00:12<05:08,  3.74it/s]
base lane too far away  1.80028786602 3.15266267631
Valid:  False  Incremental:  False 6 0 0
  4%|▍         | 46/1200 [00:12<05:07,  3.76it/s]
base lane too far away  1.82438433417 2.64801353679
Valid:  False  Incremental:  False 6 0 0
  4%|▍         | 47/1200 [00:12<05:06,  3.76it/s]
base lane too far away  1.82076304969 2.72279510015
Valid:  False  Incremental:  False 6 0 0
  4%|▍         | 48/1200 [00:13<05:05,  3.76it/s]
base lane too far away  1.86726950755 2.70921394626
Valid:  False  Incremental:  False 6 0 0
  4%|▍         | 49/1200 [00:13<05:06,  3.76it/s]
base lane too far away  1.85397715382 3.00665086326
Valid:  False  Incremental:  False 6 0 0
  4%|▍         | 50/1200 [00:13<05:06,  3.76it/s]
base lane too far away  1.82485112312 2.90889116279
Valid:  False  Incremental:  False 6 0 0
  4%|▍         | 51/1200 [00:14<05:03,  3.78it/s]
base lane too far away  1.83397309609 3.07043982007
Valid:  False  Incremental:  False 6 0 0
  4%|▍         | 52/1200 [00:14<04:59,  3.83it/s]
base lane too far away  1.83841490389 3.08371874887
Valid:  False  Incremental:  False 6 0 0
  4%|▍         | 53/1200 [00:14<04:58,  3.85it/s]
base lane too far away  1.82642440699 3.11216359315
Valid:  False  Incremental:  False 6 0 0
  4%|▍         | 54/1200 [00:14<04:58,  3.84it/s]
base lane too far away  1.84126058926 3.13243618631
Valid:  False  Incremental:  False 6 0 0
  5%|▍         | 55/1200 [00:15<05:03,  3.77it/s]
base lane too far away  1.85059409879 3.03885328892
Valid:  False  Incremental:  False 6 0 0
  5%|▍         | 56/1200 [00:15<05:04,  3.76it/s]
base lane too far away  1.88024338104 3.05287062669
Valid:  False  Incremental:  False 6 0 0
  5%|▍         | 57/1200 [00:15<05:03,  3.77it/s]
base lane too far away  1.87768221075 3.08767236085
Valid:  False  Incremental:  False 6 0 0
  5%|▍         | 58/1200 [00:15<05:02,  3.78it/s]
base lane too far away  1.88498597011 3.09861792401
Valid:  False  Incremental:  False 6 0 0
  5%|▍         | 59/1200 [00:16<04:59,  3.81it/s]
base lane too far away  1.8432646204 2.95111008699
Valid:  False  Incremental:  False 6 0 0
  5%|▌         | 60/1200 [00:16<04:59,  3.80it/s]
base lane too far away  1.84900870107 2.94771673259
Valid:  False  Incremental:  False 6 0 0
  5%|▌         | 61/1200 [00:16<04:58,  3.82it/s]
base lane too far away  1.78607744585 2.59074981616
Valid:  False  Incremental:  False 6 0 0
  5%|▌         | 62/1200 [00:16<04:57,  3.82it/s]
base lane too far away  1.77453605613 2.57169330482
Valid:  False  Incremental:  False 6 0 0
  5%|▌         | 63/1200 [00:17<04:55,  3.85it/s]
base lane too far away  1.76574927229 2.54434043933
Valid:  False  Incremental:  False 6 0 0
  5%|▌         | 64/1200 [00:17<04:55,  3.84it/s]
base lane too far away  1.68573830804 2.59801641811
Valid:  False  Incremental:  False 6 0 0
  5%|▌         | 65/1200 [00:17<04:59,  3.80it/s]
base lane too far away  1.8848707249 2.65957968554
Valid:  False  Incremental:  False 6 0 0
  6%|▌         | 66/1200 [00:17<04:57,  3.81it/s]
base lane too far away  1.87518763957 2.70426018717
Valid:  False  Incremental:  False 6 0 0
  6%|▌         | 67/1200 [00:18<04:55,  3.83it/s]
base lane too far away  1.86027973205 2.72618250565
Valid:  False  Incremental:  False 6 0 0
  6%|▌         | 68/1200 [00:18<04:55,  3.83it/s]
base lane too far away  1.86999424341 2.92197270152
Valid:  False  Incremental:  False 6 0 0
  6%|▌         | 69/1200 [00:18<04:52,  3.86it/s]
base lane too far away  1.85409377081 3.14277649086
Valid:  False  Incremental:  False 6 0 0
  6%|▌         | 70/1200 [00:18<04:52,  3.87it/s]
base lane too far away  1.87728794176 3.0228884848
Valid:  False  Incremental:  False 6 0 0
  6%|▌         | 71/1200 [00:19<04:52,  3.86it/s]
base lane too far away  1.87831391253 2.84921069839
Valid:  False  Incremental:  False 6 0 0
  6%|▌         | 72/1200 [00:19<04:49,  3.90it/s]
base lane too far away  1.82697785107 2.87414252316
Valid:  False  Incremental:  False 6 0 0
  6%|▌         | 73/1200 [00:19<04:53,  3.85it/s]
base lane too far away  1.84153433542 2.94275896408
Valid:  False  Incremental:  False 6 0 0
  6%|▌         | 74/1200 [00:20<04:55,  3.80it/s]
base lane too far away  1.78400145689 3.03832967701
Valid:  False  Incremental:  False 6 0 0
  6%|▋         | 75/1200 [00:20<05:40,  3.31it/s]
base lane too far away  1.80757261215 3.0115502801
Valid:  False  Incremental:  False 6 0 0
  6%|▋         | 76/1200 [00:20<05:36,  3.34it/s]
base lane too far away  1.9088496678 3.0667223205
Valid:  False  Incremental:  False 6 0 0
  6%|▋         | 77/1200 [00:21<05:30,  3.40it/s]
base lane too far away  1.94615825653 3.11134636775
Valid:  False  Incremental:  False 6 0 0
  6%|▋         | 78/1200 [00:21<05:23,  3.47it/s]
base lane too far away  1.90590494801 3.08130784429
Valid:  False  Incremental:  False 6 0 0
  7%|▋         | 79/1200 [00:21<05:15,  3.55it/s]
base lane too far away  1.92318939269 3.00883251153
Valid:  False  Incremental:  False 6 0 0
  7%|▋         | 80/1200 [00:21<05:08,  3.63it/s]
base lane too far away  1.92517233788 2.96274633542
Valid:  False  Incremental:  False 6 0 0
  7%|▋         | 81/1200 [00:22<05:04,  3.67it/s]
base lane too far away  0.410169052679 2.99154461437
base lane too close to center  0.410169052679 2.99154461437
Valid:  False  Incremental:  False 6 0 0
  7%|▋         | 82/1200 [00:22<04:58,  3.75it/s]
base lane too far away  2.06161978098 3.06285839247
Valid:  False  Incremental:  False 6 0 0
  7%|▋         | 83/1200 [00:22<04:51,  3.83it/s]
base lane too far away  2.09559198157 2.98507477061
Valid:  False  Incremental:  False 6 0 0
  7%|▋         | 84/1200 [00:22<04:53,  3.80it/s]
base lane too far away  0.0849904545577 3.00322131392
base lane too close to center  0.0849904545577 3.00322131392
Valid:  False  Incremental:  False 6 0 0
  7%|▋         | 85/1200 [00:23<04:53,  3.80it/s]
base lane too far away  0.0530770909596 3.05289019997
base lane too close to center  0.0530770909596 3.05289019997
Valid:  False  Incremental:  False 6 0 0
  7%|▋         | 86/1200 [00:23<04:48,  3.86it/s]
base lane too far away  2.43974305263 3.07685056356
Valid:  False  Incremental:  False 6 0 0
  7%|▋         | 87/1200 [00:23<04:46,  3.89it/s]
base lane too far away  1.71946379066 3.1368032906
Valid:  False  Incremental:  False 6 0 0
  7%|▋         | 88/1200 [00:23<04:46,  3.88it/s]
Valid:  True  Incremental:  False 0 1 1
  8%|▊         | 90/1200 [00:24<05:07,  3.61it/s]
base lane too far away  2.54865833339 1.59884998611
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
  8%|▊         | 99/1200 [00:26<04:47,  3.83it/s]
base lane too close to center  2.00877611476 0.992548629309
base lane too far away  1.68549388652 3.10859670463
Valid:  False  Incremental:  False 1 3 3
  9%|▉         | 111/1200 [00:29<04:22,  4.15it/s]
base lane too far away  2.23728186366 2.57812540347
base lane too far away  2.58697763181 2.4504276525
Valid:  False  Incremental:  False 1 3 3
  9%|▉         | 112/1200 [00:29<04:24,  4.11it/s]
base lane too far away  2.26690325569 2.56290870535
base lane too far away  2.61838538687 2.44280935007
Valid:  False  Incremental:  False 2 3 3
  9%|▉         | 113/1200 [00:30<04:29,  4.03it/s]
base lane too far away  2.24042556457 2.58640602691
base lane too far away  2.61649519675 2.39989643169
Valid:  False  Incremental:  False 3 3 3
 10%|▉         | 114/1200 [00:30<04:32,  3.99it/s]
base lane too far away  1.85583201399 2.55998564837
base lane too far away  2.65903448606 2.25515470749
Valid:  False  Incremental:  False 4 3 3
 10%|▉         | 115/1200 [00:30<04:33,  3.96it/s]
base lane too far away  1.84946410539 2.56869660138
base lane too far away  2.68426680198 0.979095818777
base lane too close to center  2.68426680198 0.979095818777
Valid:  False  Incremental:  False 5 3 3
 10%|▉         | 116/1200 [00:30<04:24,  4.09it/s]
base lane too close to center  2.32368818965 0.843119280272
Valid:  False  Incremental:  False 6 0 0
 10%|▉         | 117/1200 [00:31<04:20,  4.15it/s]
base lane too close to center  2.25578652891 0.899026888081
Valid:  False  Incremental:  False 6 0 0
 10%|▉         | 118/1200 [00:31<04:21,  4.13it/s]
Valid:  True  Incremental:  False 0 1 1
 13%|█▎        | 154/1200 [00:39<04:06,  4.25it/s]
base lane too far away  1.78779157057 2.50336580178
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 13%|█▎        | 157/1200 [00:40<04:08,  4.20it/s]
base lane too far away  2.07930816841 2.54026915668
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 13%|█▎        | 158/1200 [00:40<04:09,  4.18it/s]
base lane too far away  1.90161791242 2.51895430167
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 13%|█▎        | 159/1200 [00:40<04:09,  4.18it/s]
base lane too far away  1.88570838534 2.61827595018
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 13%|█▎        | 160/1200 [00:41<04:10,  4.14it/s]
base lane too far away  1.93957182049 2.60821243563
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 14%|█▎        | 162/1200 [00:41<04:06,  4.22it/s]
base lane too far away  1.8195056253 2.67661644813
base lane too far away  1.63192791408 6.65006925751
Valid:  False  Incremental:  False 1 3 3
 14%|█▎        | 163/1200 [00:41<04:07,  4.19it/s]
base lane too far away  1.82218386046 2.71168622335
base lane too far away  1.71702435307 6.65312781686
Valid:  False  Incremental:  False 2 3 3
 14%|█▎        | 164/1200 [00:42<04:08,  4.16it/s]
base lane too far away  1.79337764495 2.74858489782
base lane too far away  3.44559438297 3.37987170518
Valid:  False  Incremental:  False 3 3 3
 14%|█▍        | 165/1200 [00:42<04:09,  4.15it/s]
base lane too far away  1.78104556946 2.70716028179
base lane too far away  1.78357638289 2.67291135542
Valid:  False  Incremental:  False 4 3 3
 14%|█▍        | 166/1200 [00:42<04:09,  4.14it/s]
base lane too far away  1.75449906513 2.72552648153
base lane too far away  1.72839135539 2.67458330524
Valid:  False  Incremental:  False 5 3 3
 14%|█▍        | 167/1200 [00:42<04:03,  4.25it/s]
base lane too far away  1.70815023411 2.89485009663
Valid:  False  Incremental:  False 6 0 0
 14%|█▍        | 168/1200 [00:43<03:59,  4.31it/s]
base lane too far away  3.09006712591 3.13911928091
Valid:  False  Incremental:  False 6 0 0
 14%|█▍        | 169/1200 [00:43<03:55,  4.38it/s]
base lane too far away  2.91690659358 4.41285351623
Valid:  False  Incremental:  False 6 0 0
 14%|█▍        | 170/1200 [00:43<03:50,  4.48it/s]
base lane too far away  1.62972108799 3.92636965109
Valid:  False  Incremental:  False 6 0 0
 14%|█▍        | 171/1200 [00:43<03:46,  4.55it/s]
base lane too close to center  1.59159446843 0.0415189471915
Valid:  False  Incremental:  False 6 0 0
 14%|█▍        | 172/1200 [00:43<03:43,  4.59it/s]
base lane too far away  1.55385854716 2.61792944443
Valid:  False  Incremental:  False 6 0 0
 14%|█▍        | 173/1200 [00:44<03:47,  4.51it/s]
Valid:  True  Incremental:  False 0 1 1
 14%|█▍        | 174/1200 [00:44<03:52,  4.41it/s]
base lane too far away  1.78060203295 2.72671771092
base lane too far away  1.66160003821 3.16671584942
Valid:  False  Incremental:  False 1 2 2
 15%|█▍        | 175/1200 [00:44<03:56,  4.33it/s]
base lane too far away  1.70625377115 2.5029866764
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 15%|█▌        | 180/1200 [00:45<04:17,  3.96it/s]
base lane too close to center  1.67992530039 0.154872872776
base lane too close to center  0.681998726538 0.108454546749
Valid:  False  Incremental:  False 1 3 3
 15%|█▌        | 181/1200 [00:46<04:19,  3.93it/s]
base lane too close to center  1.69992234432 0.146997277939
base lane too far away  1.61027243755 2.91182412619
Valid:  False  Incremental:  False 2 3 3
 15%|█▌        | 182/1200 [00:46<04:18,  3.93it/s]
base lane too close to center  1.70879793983 0.339281712573
base lane too close to center  1.59571338597 0.0498157478358
Valid:  False  Incremental:  False 3 3 3
 15%|█▌        | 183/1200 [00:46<04:19,  3.92it/s]
base lane too close to center  1.70237724006 0.118398791787
base lane too close to center  0.736919780279 0.0107371339162
Valid:  False  Incremental:  False 4 3 3
 15%|█▌        | 184/1200 [00:46<04:19,  3.91it/s]
base lane too close to center  1.70863754945 0.264774366067
base lane too close to center  1.01221829079 0.400160699373
Valid:  False  Incremental:  False 5 3 3
 15%|█▌        | 185/1200 [00:47<04:13,  4.01it/s]
base lane too far away  0.61054033633 2.72229155966
base lane too close to center  0.61054033633 2.72229155966
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 186/1200 [00:47<04:11,  4.04it/s]
base lane too close to center  0.968241089862 0.372523116047
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 187/1200 [00:47<04:11,  4.04it/s]
base lane too close to center  1.25708096443 0.0729925001722
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 188/1200 [00:47<04:04,  4.14it/s]
base lane too close to center  1.35744045703 0.174515262463
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 189/1200 [00:48<04:00,  4.21it/s]
base lane too close to center  1.36266209858 0.870879061518
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 190/1200 [00:48<04:01,  4.19it/s]
base lane too close to center  1.3945718241 0.766720486805
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 191/1200 [00:48<03:59,  4.22it/s]
base lane too close to center  1.45604488976 0.745530106534
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 192/1200 [00:48<04:06,  4.09it/s]
base lane too close to center  1.20088194034 0.00273943126827
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 193/1200 [00:49<04:22,  3.83it/s]
base lane too close to center  1.8079965545 0.205828915935
Valid:  False  Incremental:  False 6 0 0
 16%|█▌        | 194/1200 [00:49<04:23,  3.82it/s]
base lane too close to center  2.36431088719 0.913034813294
Valid:  False  Incremental:  False 6 0 0
 16%|█▋        | 195/1200 [00:49<04:23,  3.82it/s]
base lane too close to center  2.48639470979 0.908533082694
Valid:  False  Incremental:  False 6 0 0
 16%|█▋        | 196/1200 [00:49<04:19,  3.87it/s]
base lane too close to center  2.3838701526 0.308549544826
Valid:  False  Incremental:  False 6 0 0
 16%|█▋        | 197/1200 [00:50<04:17,  3.89it/s]
base lane too far away  2.53042340994 0.71257359661
base lane too close to center  2.53042340994 0.71257359661
Valid:  False  Incremental:  False 6 0 0
 16%|█▋        | 198/1200 [00:50<04:19,  3.87it/s]
base lane too far away  3.27154600277 0.532502157208
base lane too close to center  3.27154600277 0.532502157208
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 199/1200 [00:50<04:19,  3.85it/s]
base lane too far away  2.75365804411 0.311540738064
base lane too close to center  2.75365804411 0.311540738064
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 200/1200 [00:50<04:23,  3.79it/s]
base lane too far away  3.43375376401 0.157958234874
base lane too close to center  3.43375376401 0.157958234874
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 201/1200 [00:51<04:22,  3.80it/s]
base lane too close to center  0.241368155613 0.0673620562245
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 202/1200 [00:51<04:25,  3.76it/s]
base lane too close to center  0.0852756715495 0.0500690387923
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 203/1200 [00:51<04:28,  3.71it/s]
base lane too far away  0.525947485152 3.27131712838
base lane too close to center  0.525947485152 3.27131712838
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 204/1200 [00:52<04:43,  3.52it/s]
base lane too far away  0.572256177349 3.16362967756
base lane too close to center  0.572256177349 3.16362967756
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 205/1200 [00:52<05:00,  3.31it/s]
base lane too far away  0.842047117482 2.88448082931
base lane too close to center  0.842047117482 2.88448082931
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 206/1200 [00:52<05:14,  3.16it/s]
base lane too far away  0.991321742677 2.66387719235
base lane too close to center  0.991321742677 2.66387719235
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 207/1200 [00:53<05:24,  3.06it/s]
base lane too far away  1.12045443903 2.56189747771
Valid:  False  Incremental:  False 6 0 0
 17%|█▋        | 208/1200 [00:53<05:13,  3.17it/s]
Valid:  True  Incremental:  False 0 1 1
 26%|██▌       | 307/1200 [01:21<03:36,  4.12it/s]
base lane too far away  2.01439942965 2.54831004989
Success !!!!!!!!!!
Valid:  True  Incremental:  False 0 3 3
 30%|██▉       | 355/1200 [01:32<03:44,  3.77it/s]
base lane too far away  1.81962326213 2.68916391218
base lane too close to center  0.0160214749243 0.146551525527
Valid:  False  Incremental:  False 1 3 3
 30%|██▉       | 356/1200 [01:33<03:50,  3.66it/s]
base lane too far away  1.77623269708 2.70900784858
base lane too far away  0.0687431387659 3.18474426165
base lane too close to center  0.0687431387659 3.18474426165
Valid:  False  Incremental:  False 2 3 3
 30%|██▉       | 357/1200 [01:33<03:55,  3.58it/s]
base lane too far away  1.74708100936 2.63401497264
base lane too far away  0.370806583755 2.99574615758
base lane too close to center  0.370806583755 2.99574615758
Valid:  False  Incremental:  False 3 3 3
 30%|██▉       | 358/1200 [01:33<04:07,  3.41it/s]
base lane too far away  1.71302066318 2.65408683249
base lane too far away  0.461755061644 3.05694358576
base lane too close to center  0.461755061644 3.05694358576
Valid:  False  Incremental:  False 4 3 3
 30%|██▉       | 359/1200 [01:34<04:18,  3.25it/s]
base lane too far away  1.70302293204 2.64283929143
base lane too far away  3.04991763534 3.0478810352
Valid:  False  Incremental:  False 5 3 3
 30%|███       | 360/1200 [01:34<04:06,  3.41it/s]
base lane too far away  3.22699589652 3.26290889877
Valid:  False  Incremental:  False 6 0 0
 30%|███       | 361/1200 [01:34<04:02,  3.46it/s]
base lane too far away  1.1587920347 3.00128647956
Valid:  False  Incremental:  False 6 0 0
 30%|███       | 362/1200 [01:34<03:53,  3.58it/s]
base lane too far away  1.34170146365 2.98880207141
Valid:  False  Incremental:  False 6 0 0
 30%|███       | 363/1200 [01:35<03:49,  3.65it/s]
base lane too far away  1.82787967665 2.82184476754
Valid:  False  Incremental:  False 6 0 0
 30%|███       | 364/1200 [01:35<03:45,  3.70it/s]
base lane too close to center  0.896920997131 0.752288483232
Valid:  False  Incremental:  False 6 0 0
 30%|███       | 365/1200 [01:35<03:45,  3.70it/s]
base lane too close to center  0.751187585335 0.0693811198922
Valid:  False  Incremental:  False 6 0 0
 30%|███       | 366/1200 [01:35<03:45,  3.70it/s]
base lane too close to center  1.31230813611 0.852005187643
Valid:  False  Incremental:  False 6 0 0
 31%|███       | 367/1200 [01:36<03:48,  3.64it/s]
base lane too far away  2.94906115903 0.392495214873
base lane too close to center  2.94906115903 0.392495214873
Valid:  False  Incremental:  False 6 0 0
 31%|███       | 368/1200 [01:36<03:50,  3.61it/s]
base lane too close to center  0.367984367333 0.176006347887
Valid:  False  Incremental:  False 6 0 0
 31%|███       | 369/1200 [01:36<03:53,  3.55it/s]
base lane too close to center  0.039639432835 0.122144317496
Valid:  False  Incremental:  False 6 0 0
 31%|███       | 370/1200 [01:37<03:53,  3.56it/s]
base lane too close to center  0.0373542938156 0.121772747475
Valid:  False  Incremental:  False 6 0 0
 31%|███       | 371/1200 [01:37<03:58,  3.48it/s]
base lane too close to center  0.206705174035 0.0178807692893
Valid:  False  Incremental:  False 6 0 0
 31%|███       | 372/1200 [01:37<04:20,  3.18it/s]
base lane too far away  0.394970827622 3.14016920929
base lane too close to center  0.394970827622 3.14016920929
Valid:  False  Incremental:  False 6 0 0
 31%|███       | 373/1200 [01:38<04:14,  3.25it/s]
base lane too far away  0.745882028395 3.10654666804
base lane too close to center  0.745882028395 3.10654666804
Valid:  False  Incremental:  False 6 0 0
 31%|███       | 374/1200 [01:38<04:10,  3.30it/s]
base lane too far away  0.793442307911 3.03859569484
base lane too close to center  0.793442307911 3.03859569484
Valid:  False  Incremental:  False 6 0 0
 31%|███▏      | 375/1200 [01:38<04:08,  3.32it/s]
base lane too far away  0.852941706669 2.971090286
base lane too close to center  0.852941706669 2.971090286
Valid:  False  Incremental:  False 6 0 0
 31%|███▏      | 376/1200 [01:39<04:11,  3.28it/s]
base lane too far away  1.03519601959 3.11691823751
Valid:  False  Incremental:  False 6 0 0
 31%|███▏      | 377/1200 [01:39<04:10,  3.29it/s]
base lane too far away  1.13200512775 3.17440086621
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 378/1200 [01:39<04:16,  3.21it/s]
base lane too far away  1.24873443564 3.23509521901
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 379/1200 [01:39<04:18,  3.18it/s]
base lane too far away  1.30417127254 3.20049553287
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 380/1200 [01:40<04:17,  3.19it/s]
base lane too far away  1.37517914208 3.13057939556
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 381/1200 [01:40<04:17,  3.18it/s]
base lane too far away  1.42949270189 3.12443648267
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 382/1200 [01:40<04:19,  3.15it/s]
base lane too far away  1.43749808893 3.11386309342
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 383/1200 [01:41<04:17,  3.18it/s]
base lane too far away  1.45875751681 3.11013525164
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 384/1200 [01:41<04:15,  3.20it/s]
base lane too far away  1.49027728299 3.13618092712
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 385/1200 [01:41<04:17,  3.17it/s]
base lane too far away  1.53160221916 3.12337452057
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 386/1200 [01:42<04:20,  3.13it/s]
base lane too far away  1.5299685441 3.11196190719
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 387/1200 [01:42<04:21,  3.10it/s]
base lane too far away  1.53859221125 3.07484119038
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 388/1200 [01:42<04:22,  3.10it/s]
base lane too far away  1.52103709534 3.09813079937
Valid:  False  Incremental:  False 6 0 0
 32%|███▏      | 389/1200 [01:43<04:23,  3.08it/s]
base lane too far away  1.54662912313 3.05271248039
Valid:  False  Incremental:  False 6 0 0
 32%|███▎      | 390/1200 [01:43<04:20,  3.11it/s]
base lane too far away  1.53746750187 2.98000080907
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 391/1200 [01:43<04:16,  3.16it/s]
base lane too far away  1.60809060418 3.03420297186
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 392/1200 [01:44<04:16,  3.15it/s]
base lane too far away  1.56672556077 2.88869691635
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 393/1200 [01:44<04:18,  3.12it/s]
base lane too far away  1.59673551817 2.79264514774
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 394/1200 [01:44<04:19,  3.11it/s]
base lane too far away  1.58863012327 2.74311171092
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 395/1200 [01:45<04:18,  3.12it/s]
base lane too far away  1.59920987277 2.70431514792
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 396/1200 [01:45<04:12,  3.18it/s]
base lane too far away  1.6168740962 2.86088206722
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 397/1200 [01:45<04:12,  3.18it/s]
base lane too far away  1.66375401821 2.79570866219
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 398/1200 [01:45<04:10,  3.20it/s]
base lane too far away  1.73965420962 2.82739077832
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 399/1200 [01:46<04:09,  3.21it/s]
base lane too far away  1.72716528892 2.84956508264
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 400/1200 [01:46<04:06,  3.25it/s]
base lane too far away  0.321689692911 2.87706065562
base lane too close to center  0.321689692911 2.87706065562
Valid:  False  Incremental:  False 6 0 0
 33%|███▎      | 401/1200 [01:46<04:03,  3.28it/s]
base lane too far away  0.331900412498 2.88799259973
base lane too close to center  0.331900412498 2.88799259973
Valid:  False  Incremental:  False 6 0 0
 34%|███▎      | 402/1200 [01:47<04:02,  3.30it/s]
base lane too far away  0.298403093249 2.76131404251
base lane too close to center  0.298403093249 2.76131404251
Valid:  False  Incremental:  False 6 0 0
 34%|███▎      | 403/1200 [01:47<04:04,  3.26it/s]
base lane too far away  0.274572476584 2.7230392146
base lane too close to center  0.274572476584 2.7230392146
Valid:  False  Incremental:  False 6 0 0
 34%|███▎      | 404/1200 [01:47<04:03,  3.27it/s]
base lane too far away  0.338351602592 2.78628801712
base lane too close to center  0.338351602592 2.78628801712
Valid:  False  Incremental:  False 6 0 0
 34%|███▍      | 405/1200 [01:48<04:01,  3.29it/s]
base lane too far away  0.569359296087 2.78483456306
base lane too close to center  0.569359296087 2.78483456306
Valid:  False  Incremental:  False 6 0 0
 34%|███▍      | 406/1200 [01:48<04:01,  3.29it/s]
base lane too far away  0.124666972671 2.57660587692
base lane too close to center  0.124666972671 2.57660587692
Valid:  False  Incremental:  False 6 0 0
 34%|███▍      | 407/1200 [01:48<03:58,  3.33it/s]
base lane too far away  0.0632574028891 2.60548461022
base lane too close to center  0.0632574028891 2.60548461022
Valid:  False  Incremental:  False 6 0 0
 34%|███▍      | 408/1200 [01:48<03:55,  3.36it/s]
base lane too far away  0.0216587518065 2.63910044758
base lane too close to center  0.0216587518065 2.63910044758
Valid:  False  Incremental:  False 6 0 0
 34%|███▍      | 409/1200 [01:49<03:55,  3.37it/s]
base lane too far away  0.0554529546444 2.6749392261
base lane too close to center  0.0554529546444 2.6749392261
Valid:  False  Incremental:  False 6 0 0
 34%|███▍      | 410/1200 [01:49<03:57,  3.32it/s]
base lane too far away  0.0694748801759 2.93639128174
base lane too close to center  0.0694748801759 2.93639128174
Valid:  False  Incremental:  False 6 0 0
 34%|███▍      | 411/1200 [01:49<03:58,  3.31it/s]
base lane too far away  0.169394410249 2.97595579492
base lane too close to center  0.169394410249 2.97595579492
Valid:  False  Incremental:  False 6 0 0
 34%|███▍      | 412/1200 [01:50<03:56,  3.34it/s]
base lane too far away  0.244392154734 2.65651536488
base lane too close to center  0.244392154734 2.65651536488
Valid:  False  Incremental:  False 6 0 0
 34%|███▍      | 413/1200 [01:50<03:54,  3.36it/s]
base lane too far away  0.223799401436 2.67254368338
base lane too close to center  0.223799401436 2.67254368338
Valid:  False  Incremental:  False 6 0 0
 34%|███▍      | 414/1200 [01:50<03:53,  3.36it/s]
base lane too far away  0.116325836471 2.68571010395
base lane too close to center  0.116325836471 2.68571010395
Valid:  False  Incremental:  False 6 0 0
 35%|███▍      | 415/1200 [01:51<03:52,  3.37it/s]
base lane too far away  0.0319877040612 2.74744490239
base lane too close to center  0.0319877040612 2.74744490239
Valid:  False  Incremental:  False 6 0 0
 35%|███▍      | 416/1200 [01:51<03:53,  3.36it/s]
base lane too far away  0.00307520794536 2.89799657018
base lane too close to center  0.00307520794536 2.89799657018
Valid:  False  Incremental:  False 6 0 0
 35%|███▍      | 417/1200 [01:51<03:56,  3.32it/s]
base lane too far away  0.0714076694519 2.88774181849
base lane too close to center  0.0714076694519 2.88774181849
Valid:  False  Incremental:  False 6 0 0
 35%|███▍      | 418/1200 [01:52<03:56,  3.31it/s]
base lane too far away  0.0648717650942 2.85773270964
base lane too close to center  0.0648717650942 2.85773270964
Valid:  False  Incremental:  False 6 0 0
 35%|███▍      | 419/1200 [01:52<03:56,  3.31it/s]
base lane too far away  0.193772453507 2.61071441976
base lane too close to center  0.193772453507 2.61071441976
Valid:  False  Incremental:  False 6 0 0
 35%|███▌      | 420/1200 [01:52<03:55,  3.31it/s]
base lane too close to center  0.108693823841 2.44551396875
Valid:  False  Incremental:  False 6 0 0
 35%|███▌      | 421/1200 [01:52<04:01,  3.23it/s]
base lane too close to center  0.0542736763157 2.43075848142
Valid:  False  Incremental:  False 6 0 0
 35%|███▌      | 422/1200 [01:53<04:01,  3.22it/s]
base lane too close to center  0.107855368233 2.45365577416
Valid:  False  Incremental:  False 6 0 0
 35%|███▌      | 423/1200 [01:53<04:07,  3.14it/s]
base lane too far away  0.110708935818 2.52224967486
base lane too close to center  0.110708935818 2.52224967486
Valid:  False  Incremental:  False 6 0 0
 35%|███▌      | 424/1200 [01:53<04:08,  3.12it/s]
base lane too far away  0.149544349149 2.57058729836
base lane too close to center  0.149544349149 2.57058729836
Valid:  False  Incremental:  False 6 0 0
 35%|███▌      | 425/1200 [01:54<04:03,  3.18it/s]
base lane too far away  0.0374139278974 2.65975977056
base lane too close to center  0.0374139278974 2.65975977056
Valid:  False  Incremental:  False 6 0 0
 36%|███▌      | 426/1200 [01:54<03:58,  3.24it/s]
base lane too far away  0.0974294017726 2.72785200925
base lane too close to center  0.0974294017726 2.72785200925
Valid:  False  Incremental:  False 6 0 0
 36%|███▌      | 427/1200 [01:54<04:00,  3.22it/s]
base lane too far away  0.0123892215066 2.77736340813
base lane too close to center  0.0123892215066 2.77736340813
Valid:  False  Incremental:  False 6 0 0
 36%|███▌      | 428/1200 [01:55<03:59,  3.23it/s]
base lane too far away  2.19653163248 2.87185797073
Valid:  False  Incremental:  False 6 0 0
 36%|███▌      | 429/1200 [01:55<04:01,  3.20it/s]
base lane too far away  2.1634273706 2.89806479931
Valid:  False  Incremental:  False 6 0 0
 36%|███▌      | 430/1200 [01:55<04:09,  3.08it/s]
base lane too far away  0.419706777628 2.91837032223
base lane too close to center  0.419706777628 2.91837032223
Valid:  False  Incremental:  False 6 0 0
 36%|███▌      | 431/1200 [01:56<04:07,  3.11it/s]
base lane too far away  0.273410447867 2.96259560562
base lane too close to center  0.273410447867 2.96259560562
Valid:  False  Incremental:  False 6 0 0
 36%|███▌      | 432/1200 [01:56<04:05,  3.12it/s]
base lane too far away  0.151122267263 2.98407429968
base lane too close to center  0.151122267263 2.98407429968
Valid:  False  Incremental:  False 6 0 0
 36%|███▌      | 433/1200 [01:56<03:58,  3.21it/s]
base lane too close to center  0.239760683773 2.45451801218
Valid:  False  Incremental:  False 6 0 0
 36%|███▌      | 434/1200 [01:57<03:55,  3.25it/s]
base lane too close to center  0.150613869101 2.44157218502
Valid:  False  Incremental:  False 6 0 0
 36%|███▋      | 435/1200 [01:57<03:54,  3.26it/s]
base lane too close to center  0.133349461353 2.471046584
Valid:  False  Incremental:  False 6 0 0
 36%|███▋      | 436/1200 [01:57<03:51,  3.30it/s]
base lane too close to center  0.201961212858 2.43084321607
Valid:  False  Incremental:  False 6 0 0
 36%|███▋      | 437/1200 [01:57<03:48,  3.34it/s]
base lane too close to center  0.0819064377661 2.49763730417
Valid:  False  Incremental:  False 6 0 0
 36%|███▋      | 438/1200 [01:58<03:44,  3.39it/s]
base lane too far away  0.125908335394 2.51532139828
base lane too close to center  0.125908335394 2.51532139828
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 439/1200 [01:58<03:50,  3.30it/s]
base lane too far away  0.0922570498062 2.58496220345
base lane too close to center  0.0922570498062 2.58496220345
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 440/1200 [01:58<03:50,  3.30it/s]
base lane too close to center  0.195371813488 2.48274668899
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 441/1200 [01:59<03:58,  3.18it/s]
base lane too close to center  0.059231876318 2.46550987215
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 442/1200 [01:59<04:04,  3.10it/s]
base lane too close to center  0.021697344858 2.47394150426
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 443/1200 [01:59<04:00,  3.15it/s]
base lane too far away  0.194409729131 2.58553645153
base lane too close to center  0.194409729131 2.58553645153
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 444/1200 [02:00<03:58,  3.17it/s]
base lane too far away  0.0448458405586 2.94378571386
base lane too close to center  0.0448458405586 2.94378571386
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 445/1200 [02:00<03:52,  3.25it/s]
base lane too far away  0.1191389437 3.01561363948
base lane too close to center  0.1191389437 3.01561363948
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 446/1200 [02:00<03:48,  3.30it/s]
base lane too far away  0.0351192856183 2.78271836459
base lane too close to center  0.0351192856183 2.78271836459
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 447/1200 [02:00<03:43,  3.36it/s]
base lane too far away  0.291893810207 2.86518037185
base lane too close to center  0.291893810207 2.86518037185
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 448/1200 [02:01<03:38,  3.44it/s]
base lane too far away  0.453300201566 3.0936210321
base lane too close to center  0.453300201566 3.0936210321
Valid:  False  Incremental:  False 6 0 0
 37%|███▋      | 449/1200 [02:01<03:37,  3.45it/s]
base lane too far away  0.20754149488 3.07037521917
base lane too close to center  0.20754149488 3.07037521917
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 450/1200 [02:01<03:34,  3.50it/s]
base lane too far away  0.104094761996 2.92914691196
base lane too close to center  0.104094761996 2.92914691196
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 451/1200 [02:02<03:32,  3.52it/s]
base lane too far away  0.0610494089776 2.83073844866
base lane too close to center  0.0610494089776 2.83073844866
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 452/1200 [02:02<03:32,  3.53it/s]
base lane too far away  0.394290211844 2.90815187476
base lane too close to center  0.394290211844 2.90815187476
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 453/1200 [02:02<03:32,  3.51it/s]
base lane too far away  2.11772755553 2.91911542974
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 454/1200 [02:02<03:36,  3.45it/s]
base lane too far away  0.902553968845 3.03645687414
base lane too close to center  0.902553968845 3.03645687414
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 455/1200 [02:03<03:34,  3.47it/s]
base lane too far away  0.706456497334 3.14615659551
base lane too close to center  0.706456497334 3.14615659551
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 456/1200 [02:03<03:35,  3.46it/s]
base lane too far away  0.54919079562 3.17286916037
base lane too close to center  0.54919079562 3.17286916037
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 457/1200 [02:03<03:28,  3.57it/s]
base lane too far away  0.344452935563 3.30475073318
base lane too close to center  0.344452935563 3.30475073318
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 458/1200 [02:04<03:28,  3.56it/s]
base lane too far away  0.183393676995 2.99510391723
base lane too close to center  0.183393676995 2.99510391723
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 459/1200 [02:04<03:25,  3.61it/s]
base lane too far away  2.04652338428 3.05498938794
Valid:  False  Incremental:  False 6 0 0
 38%|███▊      | 460/1200 [02:04<03:36,  3.42it/s]
Valid:  True  Incremental:  False 0 1 1
 40%|███▉      | 474/1200 [02:09<04:20,  2.79it/s]
base lane too close to center  2.43369134845 0.994543454352
base lane too far away  2.25748532961 3.1880809936
Valid:  False  Incremental:  False 1 3 3
 40%|███▉      | 476/1200 [02:10<04:10,  2.89it/s]
base lane too far away  2.51014133453 1.02908273431
base lane too far away  2.27934927608 3.26065409837
Valid:  False  Incremental:  False 1 3 3
 40%|███▉      | 477/1200 [02:10<04:11,  2.87it/s]
base lane too close to center  2.48527372661 0.981668659339
base lane too far away  2.28234697959 3.32118417622
Valid:  False  Incremental:  False 2 3 3
 40%|███▉      | 478/1200 [02:11<04:11,  2.88it/s]
base lane too far away  2.50843874015 1.01322779164
base lane too far away  2.28813727735 3.5530260903
Valid:  False  Incremental:  False 3 3 3
 40%|███▉      | 479/1200 [02:11<04:13,  2.85it/s]
base lane too close to center  2.49036955594 0.98317349023
base lane too far away  2.30471506805 3.16384292345
Valid:  False  Incremental:  False 4 3 3
 40%|████      | 482/1200 [02:12<04:20,  2.75it/s]
base lane too far away  2.51303821093 1.13290459942
base lane too far away  1.77336642666 3.64291924623
Valid:  False  Incremental:  False 1 3 3
 40%|████      | 483/1200 [02:13<04:32,  2.63it/s]
base lane too far away  2.50854963107 1.13627658423
base lane too far away  0.343268504464 3.21202071112
base lane too close to center  0.343268504464 3.21202071112
Valid:  False  Incremental:  False 2 3 3
 40%|████      | 484/1200 [02:13<04:29,  2.66it/s]
base lane too far away  2.50303942826 1.04536162474
base lane too far away  1.61013912608 3.51963992292
Valid:  False  Incremental:  False 3 3 3
 40%|████      | 485/1200 [02:13<04:45,  2.51it/s]
base lane too far away  2.54287645985 0.956216358209
base lane too close to center  2.54287645985 0.956216358209
base lane too far away  1.5997122412 3.66140383225
Valid:  False  Incremental:  False 4 3 3
 40%|████      | 486/1200 [02:14<04:40,  2.54it/s]
base lane too far away  2.52095896321 1.07252037549
base lane too far away  1.36570837199 3.65714861556
Valid:  False  Incremental:  False 5 3 3
 41%|████      | 487/1200 [02:14<04:47,  2.48it/s]
base lane too far away  0.148461774064 3.05286510705
base lane too close to center  0.148461774064 3.05286510705
Valid:  False  Incremental:  False 6 0 0
 41%|████      | 488/1200 [02:15<04:33,  2.61it/s]
base lane too far away  0.285779686942 2.91608915203
base lane too close to center  0.285779686942 2.91608915203
Valid:  False  Incremental:  False 6 0 0
 41%|████      | 489/1200 [02:15<04:13,  2.81it/s]
base lane too far away  1.23266061203 3.14162532112
Valid:  False  Incremental:  False 6 0 0
 41%|████      | 490/1200 [02:15<04:03,  2.91it/s]
base lane too far away  1.21916904735 3.72790905007
Valid:  False  Incremental:  False 6 0 0
 41%|████      | 491/1200 [02:15<03:48,  3.10it/s]
base lane too far away  1.208070663 3.99561479475
Valid:  False  Incremental:  False 6 0 0
 41%|████      | 492/1200 [02:16<03:40,  3.21it/s]
base lane too far away  1.25250688859 4.15098180126
Valid:  False  Incremental:  False 6 0 0
 41%|████      | 493/1200 [02:16<03:43,  3.16it/s]
base lane too far away  1.27263660448 3.04449194846
Valid:  False  Incremental:  False 6 0 0
 41%|████      | 494/1200 [02:16<03:37,  3.24it/s]
base lane too far away  1.25461292994 4.10617975405
Valid:  False  Incremental:  False 6 0 0
 41%|████▏     | 495/1200 [02:17<03:35,  3.27it/s]
base lane too far away  1.28382347602 4.29365871959
Valid:  False  Incremental:  False 6 0 0
 41%|████▏     | 496/1200 [02:17<03:39,  3.21it/s]
base lane too far away  0.0871519645817 4.41013598385
base lane too close to center  0.0871519645817 4.41013598385
Valid:  False  Incremental:  False 6 0 0
 41%|████▏     | 497/1200 [02:17<03:39,  3.20it/s]
base lane too far away  0.0924837240492 4.19963152426
base lane too close to center  0.0924837240492 4.19963152426
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 498/1200 [02:18<03:54,  2.99it/s]
base lane too far away  0.332750196147 3.65916224373
base lane too close to center  0.332750196147 3.65916224373
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 499/1200 [02:18<03:43,  3.14it/s]
base lane too far away  0.629667272495 3.28896139962
base lane too close to center  0.629667272495 3.28896139962
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 500/1200 [02:18<03:35,  3.24it/s]
base lane too far away  0.379114586241 3.4228231426
base lane too close to center  0.379114586241 3.4228231426
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 501/1200 [02:19<03:29,  3.34it/s]
base lane too far away  0.104752146656 3.37817546244
base lane too close to center  0.104752146656 3.37817546244
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 502/1200 [02:19<03:27,  3.37it/s]
base lane too far away  0.605580060554 3.48853151456
base lane too close to center  0.605580060554 3.48853151456
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 503/1200 [02:19<03:26,  3.38it/s]
base lane too far away  0.390008918052 3.54735886161
base lane too close to center  0.390008918052 3.54735886161
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 504/1200 [02:19<03:23,  3.41it/s]
base lane too far away  0.298615533417 3.53407332087
base lane too close to center  0.298615533417 3.53407332087
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 505/1200 [02:20<03:22,  3.44it/s]
base lane too far away  0.328680734815 3.52623150475
base lane too close to center  0.328680734815 3.52623150475
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 506/1200 [02:20<03:26,  3.36it/s]
base lane too far away  0.40700214174 3.50550719533
base lane too close to center  0.40700214174 3.50550719533
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 507/1200 [02:20<03:23,  3.40it/s]
base lane too far away  0.483553822187 3.50697426051
base lane too close to center  0.483553822187 3.50697426051
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 508/1200 [02:21<04:03,  2.84it/s]
base lane too far away  0.36150157536 3.34005456006
base lane too close to center  0.36150157536 3.34005456006
Valid:  False  Incremental:  False 6 0 0
 42%|████▏     | 509/1200 [02:21<03:52,  2.97it/s]
base lane too far away  0.448137511618 3.17313987877
base lane too close to center  0.448137511618 3.17313987877
Valid:  False  Incremental:  False 6 0 0
 42%|████▎     | 510/1200 [02:21<03:42,  3.11it/s]
base lane too far away  0.192834630821 3.14973298886
base lane too close to center  0.192834630821 3.14973298886
Valid:  False  Incremental:  False 6 0 0
 43%|████▎     | 511/1200 [02:22<03:40,  3.13it/s]
base lane too far away  2.44976698388 3.28920685519
Valid:  False  Incremental:  False 6 0 0
 43%|████▎     | 512/1200 [02:22<04:03,  2.82it/s]
base lane too far away  0.0758862166348 3.34409912798
base lane too close to center  0.0758862166348 3.34409912798
Valid:  False  Incremental:  False 6 0 0
 43%|████▎     | 513/1200 [02:22<03:48,  3.01it/s]
base lane too far away  2.3921748758 3.32372002328
Valid:  False  Incremental:  False 6 0 0
 43%|████▎     | 514/1200 [02:23<03:33,  3.21it/s]
base lane too far away  2.39647328775 3.29059381814
Valid:  False  Incremental:  False 6 0 0
 43%|████▎     | 515/1200 [02:23<03:30,  3.26it/s]
base lane too far away  2.42795399777 3.4040982228
Valid:  False  Incremental:  False 6 0 0
 43%|████▎     | 516/1200 [02:23<03:24,  3.35it/s]
base lane too far away  0.833904597369 3.17472309127
base lane too close to center  0.833904597369 3.17472309127
Valid:  False  Incremental:  False 6 0 0
 43%|████▎     | 517/1200 [02:24<03:21,  3.38it/s]
base lane too far away  0.9051737158 4.01636086808
base lane too close to center  0.9051737158 4.01636086808
Valid:  False  Incremental:  False 6 0 0
 43%|████▎     | 518/1200 [02:24<03:18,  3.43it/s]
base lane too far away  2.42801673179 4.8770827548
Valid:  False  Incremental:  False 6 0 0
 43%|████▎     | 519/1200 [02:24<03:25,  3.31it/s]
In [ ]: